/*
* Copyright 2016 Yonyou Auto Information Technology（Shanghai） Co., Ltd. All Rights Reserved.
*
* This software is published under the terms of the YONYOU Software
* License version 1.0, a copy of which has been included with this
* distribution in the LICENSE.txt file.
*
* @Project Name : marketing-service-testdriving-appointment
*
* @File name : MaintainFrecordDtoPO.java
*
* @Author : WangHuicheng
*
* @Date : 2016年11月25日
*
----------------------------------------------------------------------------------
*     Date             Who             Version     Comments
* 1. 2016年11月21日    WangHuicheng    1.0
*
*
*
*
----------------------------------------------------------------------------------
*/

package com.yonyou.gmmc.dealerApp.api.entity;

import java.util.Date;

import javax.validation.constraints.NotNull;

import org.marketing.common.constants.ValidationConstant;
import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 养修预约跟进
 * 
 * @author WangHuicheng
 * @date 2016年11月25日
 */
public class MaintainFrecordPO {

    /**
     * 养修预约跟进记录主键
     */
    private Long    tlreservationFollowRecodeId;
    private Long    userId;

    /**
     * 养修预约主键
     */
    @NotNull(message = ValidationConstant.VALIDATION_TESTDRIVEAPPOINTMENTID_NO_NOTNULL)
    private Long    resnId;

    /**
     * 车系
     */
    private String  packageCode;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    /**
     * 预约日期
     */
    private Date    reserveDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    /**
     * 跟进时间
     */
    private Date    followDate;

    @NotNull(message = ValidationConstant.VALIDATION_APPOINTMENTSTATUS_NO_NOTNULL)
    /**
     * 跟进状态
     */
    private Integer appointmentStatus;

    /**
     * 备注
     */
    private String  remark;

    private Long    createBy;

    private Date    createDate;

    private Long    updateBy;

    private Date    updateDate;

    // 额外参数定义
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date    startDate;                  // 到店时间

    /**
     * @return the tlreservationFollowRecodeId
     */
    public Long getTlreservationFollowRecodeId() {
        return tlreservationFollowRecodeId;
    }

    /**
     * @param tlreservationFollowRecodeId the tlreservationFollowRecodeId to set
     */
    public void setTlreservationFollowRecodeId(Long tlreservationFollowRecodeId) {
        this.tlreservationFollowRecodeId = tlreservationFollowRecodeId;
    }

    /**
     * @return the userId
     */
    public Long getUserId() {
        return userId;
    }

    /**
     * @param userId the userId to set
     */
    public void setUserId(Long userId) {
        this.userId = userId;
    }

    /**
     * @return the resnId
     */
    public Long getResnId() {
        return resnId;
    }

    /**
     * @param resnId the resnId to set
     */
    public void setResnId(Long resnId) {
        this.resnId = resnId;
    }

    /**
     * @return the packageCode
     */
    public String getPackageCode() {
        return packageCode;
    }

    /**
     * @param packageCode the packageCode to set
     */
    public void setPackageCode(String packageCode) {
        this.packageCode = packageCode;
    }

    /**
     * @return the reserveDate
     */
    public Date getReserveDate() {
        return reserveDate;
    }

    /**
     * @param reserveDate the reserveDate to set
     */
    public void setReserveDate(Date reserveDate) {
        this.reserveDate = reserveDate;
    }

    /**
     * @return the followDate
     */
    public Date getFollowDate() {
        return followDate;
    }

    /**
     * @param followDate the followDate to set
     */
    public void setFollowDate(Date followDate) {
        this.followDate = followDate;
    }

    /**
     * @return the appointmentStatus
     */
    public Integer getAppointmentStatus() {
        return appointmentStatus;
    }

    /**
     * @param appointmentStatus the appointmentStatus to set
     */
    public void setAppointmentStatus(Integer appointmentStatus) {
        this.appointmentStatus = appointmentStatus;
    }

    /**
     * @return the remark
     */
    public String getRemark() {
        return remark;
    }

    /**
     * @param remark the remark to set
     */
    public void setRemark(String remark) {
        this.remark = remark;
    }

    /**
     * @return the createBy
     */
    public Long getCreateBy() {
        return createBy;
    }

    /**
     * @param createBy the createBy to set
     */
    public void setCreateBy(Long createBy) {
        this.createBy = createBy;
    }

    /**
     * @return the createDate
     */
    public Date getCreateDate() {
        return createDate;
    }

    /**
     * @param createDate the createDate to set
     */
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    /**
     * @return the updateBy
     */
    public Long getUpdateBy() {
        return updateBy;
    }

    /**
     * @param updateBy the updateBy to set
     */
    public void setUpdateBy(Long updateBy) {
        this.updateBy = updateBy;
    }

    /**
     * @return the updateDate
     */
    public Date getUpdateDate() {
        return updateDate;
    }

    /**
     * @param updateDate the updateDate to set
     */
    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    /**
     * @return the startDate
     */
    public Date getStartDate() {
        return startDate;
    }

    /**
     * @param startDate the startDate to set
     */
    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

}
